// src/store/index.js
import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    cartItems: [
      { name: '手机', price: 1000, quantity: 1 },
      { name: '电脑', price: 2000, quantity: 1 },
      { name: '键盘', price: 200, quantity: 2 }
    ]
  },
  getters: {
    cartTotalPrice(state) {
      return state.cartItems.reduce((total, item) => total + item.price * item.quantity, 0);
    }
  },
  mutations: {
    incrementQuantity(state, name) {
      const item = state.cartItems.find(item => item.name === name);
      if (item) {
        item.quantity += 1;
      }
    },
    decrementQuantity(state, name) {
      const item = state.cartItems.find(item => item.name === name);
      if (item && item.quantity > 1) {
        item.quantity -= 1;
      } else if (item && item.quantity === 1) {
        state.cartItems = state.cartItems.filter(i => i.name !== name);
      }
    }
  },
  actions: {
    incrementQuantity({ commit }, name) {
      commit('incrementQuantity', name);
    },
    decrementQuantity({ commit }, name) {
      commit('decrementQuantity', name);
    }
  }
});